package components;

import fr.irit.smac.muadl.impl.j.QuasiComponent;

public abstract class QuasiComponentBehavior
		extends
			QuasiComponent<AdapterBehavior> {

	abstract public void cycle(impl.Message msg);

	abstract public tools.Fragment myself();

	abstract public void perceiveMMME();

	abstract public tools.FragmentState decide();

	abstract public void act();

	abstract public void sendChallenger();

	abstract public void sendConcurrency();

	abstract public void sendStimulation();

	protected int getCriticity() {
		return this.architecture().getCriticity();
	}

	protected int getProcessNumber() {
		return this.architecture().getProcessNumber();
	}

	protected java.util.ArrayList<tools.MMME> getRequiredMMMECharacteristics() {
		return this.architecture().getRequiredMMMECharacteristics();
	}

	protected java.util.ArrayList<tools.MMME> getProvidedMMMECharacteristics() {
		return this.architecture().getProvidedMMMECharacteristics();
	}

	protected java.util.Vector<impl.AgentRef> getChallengingFragments() {
		return this.architecture().getChallengingFragments();
	}

	protected java.util.Vector<java.lang.String> getRequiredElements() {
		return this.architecture().getRequiredElements();
	}

	protected tools.FragmentState getMyState() {
		return this.architecture().getMyState();
	}

	protected void setMyState(tools.FragmentState arg0) {
		this.architecture().setMyState(arg0);
	}

	protected void setCriticity(int arg0) {
		this.architecture().setCriticity(arg0);
	}

	protected void setProcessNumber(int arg0) {
		this.architecture().setProcessNumber(arg0);
	}

	protected void setRequiredMMMECharacteristics(tools.MMME arg0) {
		this.architecture().setRequiredMMMECharacteristics(arg0);
	}

	protected void setProvidedMMMECharacteristics(tools.MMME arg0) {
		this.architecture().setProvidedMMMECharacteristics(arg0);
	}

	protected void initRep() {
		this.architecture().initRep();
	}

	protected java.util.ArrayList<tools.MMME> getProvidedMMME() {
		return this.architecture().getProvidedMMME();
	}

	protected java.util.ArrayList<tools.MMME> getRequiredMMME() {
		return this.architecture().getRequiredMMME();
	}

	protected boolean allrequiredMMMEareProducible(
			java.util.ArrayList<tools.MMME> arg0) {
		return this.architecture().allrequiredMMMEareProducible(arg0);
	}

	protected boolean evalMostCriticicalProcess() {
		return this.architecture().evalMostCriticicalProcess();
	}

	protected boolean oneOfProvidedMMMEisIncorporated(
			java.util.ArrayList<tools.MMME> arg0) {
		return this.architecture().oneOfProvidedMMMEisIncorporated(arg0);
	}

	protected boolean oneOfProvidedMMMEisConcurent(
			java.util.ArrayList<tools.MMME> arg0) {
		return this.architecture().oneOfProvidedMMMEisConcurent(arg0);
	}

	protected boolean oneOfProvidedMMMEisRedundant(
			java.util.ArrayList<tools.MMME> arg0) {
		return this.architecture().oneOfProvidedMMMEisRedundant(arg0);
	}

	protected void Stimulate(java.util.ArrayList<tools.MMME> arg0) {
		this.architecture().Stimulate(arg0);
	}

	protected void send(impl.AgentRef arg0, impl.Message arg1) {
		this.architecture().send(arg0, arg1);
	}

	protected impl.AgentRef create(impl.PatternMatchingCharacteristics arg0,
			impl.PatternMatchingBehavior arg1) {
		return this.architecture().create(arg0, arg1);
	}

	protected impl.AgentRef getId() {
		return this.architecture().getId();
	}

	protected void die() {
		this.architecture().die();
	}

}
